1. Field of the Invention
The present invention relates to a system for transmitting and receiving data over a bus in which the data is formatted in IEEE 1394 standard and in which the data is sent and received over the same IEEE 1394 channel.
2. Incorporation by Reference
This application incorporates by reference commonly assigned U.S. patent application Ser. No. 09/166,487, entitled “Digital Video Network Interface” (internal reference No. MOI-328/360), the disclosure of which is herein incorporated by reference, as if set forth in full.
3. Description of the Prior Art
The IEEE 1394 standard bus (1394 bus) provides for isochronous transmission of data packets, which are sent and received every 125 microseconds in correspondence to one cycle. A maximum of 64 isochronous packets can be sent over the bus per cycle. As a result, any device that uses the IEEE 1394 standard for isochronous transmission of data, is assigned an isochronous channel, ranging in value from 0 to 63. The channel is assigned to a specific device until it is released by that device. In this regard, when the 1394 bus is initialized, a node identifier is automatically assigned to each device (such as a digital video camera) that uses the bus as a means of identifying each node.
To achieve isochronous transmission on plural channels, the IEEE 1394 specification (IEEE 1394-1995) reserves one of the plural nodes connected to the bus so that it is used for isochronous resource management, a function that is supported by a software layer (to be discussed in greater detail below). This node is known as the “Isochronous Resource Manager”. The Isochronous Resource Manager manages the channel numbers used for isochronous transmission, and the time remaining in each cycle that is usable for isochronous transmission. This available remaining time to transfer additional isochronous data within each cycle is called channel bandwidth. The Isochronous Resource Manager reserves the channel bandwidth and channel numbers (0-63) needed by 1394 bus nodes for isochronous transmission. Upon power-up, each device (node) that needs to transmit data isochronously issues a request to the Isochronous Resource Manager. In particular, a node designed to transmit isochronous data must first determine if there is an unused channel and available bandwidth for that purpose. The node typically makes a request to the Isochronous Resource Manager to determine if there are isochronous channels available and bandwidth available, in order to obtain a unique channel and bandwidth allocation.
In the case that two or more nodes desire to use the same channel, the first node requesting access to an available channel will be assigned that channel. For example, if two nodes request access to channel 63, only the node whose request reaches the Isochronous Resource Manager first will be assigned to channel 63. All other nodes will be locked out from using channel 63 until the device using channel 63 releases the channel.
The problem of attempting to use the same channel occurs not only when more than 64 devices are attempting to access the 1394 bus, but can also arise even if only two or more digital video cameras are being used on the same 1394 bus. That is, many different digital video cameras are designed to transmit over a single preset channel number, or “broadcast channel” for transmitting digital video data packets over the 1394 bus. The “broadcast channel” concept is described in U.S. Pat. No. 5,535,208, entitled “Data Transmission System And Method”, Kawakami et al, assigned to Matsushita. This broadcast channel, as defined by this patent, has in practice become the first available isochronous channel, or channel 63. However, because the IEEE 1394 standard does not allow more than one node to use the same isochronous channel at one time, only one of the digital video cameras is permitted isochronous bandwidth and use of channel 63 to perform transmission of isochronous data on the bus. As a result of this conflict, two or more digital video cameras connected to the same 1394 bus cannot be used in a bi-directional video conferencing configuration, because at the sending and receiving sides, only one camera will be able to send data per bus.
Therefore, in any configuration where multiple digital video cameras (which have adopted the “broadcast channel” concept standard of U.S. Pat. No. 5,535,208) are attempting to transmit isochronous data on a 1394 bus, only one camera will be able to send isochronous data and all others will be locked out from sending isochronous data on the bus.
Although the problems with the assignment of channels have been disclosed with respect to digital video cameras, it should be understood that the same problem applies in the case of other IEEE 1394 devices, such as scanners, digital video disks, compact disks, set-top boxes, computers, or any other devices that wish to isochronously transmit data on conflicting channels. Also, this problem would apply in the case that all 64 channels have been already assigned and a new device is attempting to utilize a channel that has already been assigned.
Heretofore, it has not been possible to send/receive data over the same 1394 bus when more than one device is attempting to use a single broadcast channel, for example, channel 63, of the 1394 bus. Accordingly, it is desirable to have a system that permits two or more devices to transmit or receive data using the same channel over a 1394 bus, so that transmitting data over a local data bus or a local area network by more than one device using the same broadcast channel becomes possible.